package jfuzzyprincepless.negotiation;

import jfuzzyprincepless.negotiation.services.IService;

/**
 * determinates algorithm (general schema) of negotiation
 * 
 * NOTE: now stores agents,
 */
public interface INegotiation
	extends IService
{
	/**
	 * create context and negotiate
	 * @return created context
	 */
	public INegotiationContext negotiate();

	/**
	 * negotiate with specified context
	 */
	public void negotiate(INegotiationContext context);

	/**
	 * execute with specified context
	 */
	public void execute(IExecutionContext context); // TODO: remove from interface
}
